//基本数据类型
export interface DataType {
    blogInfo: {
        bigAvaImg: string,
        blogId: number,
        blogNickName: string
    },
    itemId: number,
    itemType: number,
    postData: {
        postCount: {
            blogId: number,
            favoriteCount: number,
            hotCount: number,
            reblogCount: number,
            responseCount: number,
            shareCount: number,
            subscribeCount: number,
            viewCount: number,
        },
        postView: {
            blogId: number,
            digest: string,
            firstImage: {
                orign: string
            },
            id: number,
            photoCount: number,
            postPageUrl: string,
            publishTime: number,
            tagList: string[],
            title: string,
            type: number,
            permalink: string
        }
    },
    postCollection: {
        blogId: number,
        collectionType: number,
        coverUrl: string,
        id: number,
        name: string,
        postCount: number,
        tagList: Array<string>
        viewCount: number,
    },
}

//推荐页类型
export interface RecommendedType {
    list: Array<DataType>
}

//广告的params的类型
export interface AdvertisingParamsType {
    category: string,
    extJson?: string
}

//广告的数据的类型
export interface AdvertisingDataType {
    res_url: Array<string>
}

//返回广告的数据数组的类型
export interface AdvertisingType {
    ads: Array<AdvertisingDataType>
}

//视频的数据的类型
export interface VideoType {
    list: Array<DataType>
}

//直播live数据的类型
export interface LiveDataType {
    anchorId: number,
    avatarUrl: string,
    blogName: string,
    hotValue: number,
    liveType: string,
    nickName: string,
    recordId: number,
    roomId: number,
    thumb: string,
    title: string
    follow?: boolean,
    intro?: string,
    liveTime?: number,
    liveTitle?: string,
}

//直播live的类型
export interface LiveType {
    lives: Array<LiveDataType>
}

//直播forecast预直播数据类型
export interface LiveForecastsDataType {
    anchorId: number,
    avatarUrl: string,
    blogName: string,
    following: boolean,
    id: number,
    intro: string,
    liveTime: number,
    nickName: string,
    roomId: number,
    thumb: string,
    follow?: boolean,
    title?: string,
    liveType?: string,
    liveTitle?: string,
}

//直播forecast预直播类型
export interface LiveForecastsType {
    forecasts: Array<LiveForecastsDataType>
}

//直播official官方直播数据类型
export interface LiveOfficialDataType {
    anchorId: number,
    avatarUrl: string,
    blogName: string,
    follow: boolean,
    hotValue: number,
    label: null,
    liveBkgdUrl: string,
    liveTitle: string,
    liveType: string,
    nickName: string,
    recordId: number,
    replayUrl: string,
    roomId: number,
    thumb: string,
    title: string
    intro?: string,
    liveTime: number,
}

//直播official官方直播类型
export interface LiveOfficialType {
    lives: Array<LiveOfficialDataType>
}

//话题数据类型
export interface topTagListsDataType {
    image: string,
    joinedCount: number,
    name: string
}


//粮仓页数据ModuleType0
export interface GranaryModuleType0 {
    dataList: Array<DataType>,
    moduleName: string,
    moduleType: number
}

//粮仓页数据ModuleType1
export interface GranaryModuleType1 {
    dataList: Array<{
        blogInfo: {
            bigAvaImg: string,
            blogId: number,
            blogNickName: string
        },
        itemId: number,
        itemType: number,
        postCollection: {
            blogId: number,
            collectionType: number,
            coverUrl: string,
            id: number,
            name: string,
            postCount: number,
            tagList: Array<string>
            viewCount: number,
        },
        postData: {
            postCount: {
                blogId: number,
                favoriteCount: number,
                hotCount: number,
                reblogCount: number,
                responseCount: number,
                shareCount: number,
                subscribeCount: number,
                viewCount: number,
            },
            postView: {
                blogId: number,
                digest: string,
                firstImage: {
                    orign: string
                },
                id: number,
                photoCount: number,
                postPageUrl: string,
                publishTime: number,
                tagList: string[],
                title: string,
                type: number
            }
        }
    }>,
    moduleName: string,
    moduleType: number
}

//粮仓页数据ModuleType0
export interface GranaryModuleType2 {
    dataList: Array<DataType>
    moduleName: string,
    moduleType: number
}

//粮仓页数据Navi数据类型    
export interface GranaryNaviDataType {
    img: string,
    url: string
}

//粮仓页数据data数据类型
export interface GranaryDataType {
    list: Array<GranaryModuleType0 | GranaryModuleType1 | GranaryModuleType2>
}



//发现子页数据类型
export interface HomeItemDataPostType {
    id: number,
    allowReward: number,
    allowView: number,
    applyStatus: number,
    blogId: number,
    blogInfo: {
        blogId: number,
        blogName: string,
        blogNickName: string,
        bigAvaImg: string,
        avatarBoxImage: string,
    }
    blogPageUrl: string,
    caption: string,
    cctype: number,
    citeParentBlogId: number,
    citeParentPermalink: string,
    citeParentPostId: number,
    citeRootBlogId: number,
    citeRootPostId: number,
    cited: boolean,
    collectionId: number,
    content: string,
    digest: string,
    dirPostType: number,
    firstImageUrl: string,
    firstImageWH: Array<number>,
    firstSmallImageUrl: string,
    forbidShare: number,
    hot: number,
    ipLocation: string,
    isContribute: boolean,
    isPublished: boolean,
    locationId: number,
    needPay: boolean,
    newVersionAuditing: boolean,
    payView: number,
    payViewExpire: boolean,
    payViewPost: boolean,
    payingView: boolean,
    permalink: string,
    photoCaptions: string,
    photoLinks: string,
    photoType: number,
    pos: number,
    postCollection: {
        id: number,
        blogId: number,
        coverUrl: string,
        name: string,
        description: string,
    }
    postCount: {
        responseCount: number,
        favoriteCount: number,
        reblogCount: number,
        shareCount: number,
        viewCount: number,
        postHot: number
    }
    publishTime: number,
    publisherMainBlogInfo: {
        blogId: number,
        blogName: string,
        blogNickName: string,
        bigAvaImg: string,
        avatarBoxImage: string,
    }
    publisherUserId: number,
    rank: number,
    showGift: number,
    tag: string,
    tagList: Array<string>,
    title: string,
    top: number,
    type: number,
    valid: number,
    viewRank: number,
}

//发现子页数据类型
export interface HomeItemDataType {
    post: HomeItemDataPostType

}

//发现子页类型
export interface HomeItemType {
    response: {
        posts: Array<HomeItemDataType>
    }
}

//发现子页评论数据类型
export interface HomeItemCommentsType {
    blogId: number,
    content: string,
    id: number,
    ipLocation: string,
    l2Comments: Array<any>
    l2Count: number,
    likeCount: number,
    liked: boolean,
    postId: number,
    publishTime: number,
    publisherBlogInfo: {
        blogNickName: string,
        bigAvaImg: string,
        blogId: number,
        isAuth: boolean,
        isVerify: boolean,
    }
    replyL1CommentId: number,
    replyL2CommentId: number,
    top: number,
}

